package atack.tesis.kelluntekun.domain;

import java.io.Serializable;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Transient;

import com.vaadin.terminal.ThemeResource;



@Entity
public class Carpeta implements Serializable{
	private static final long serialVersionUID = 2L;
	
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO) 
	private Long id;
	@Column(nullable = false)
	private String nombre;
	private String descripcion;
	@ManyToOne
	private Usuario usuario;
	@OneToMany(mappedBy="carpeta", cascade=CascadeType.ALL)
	private Set<Snippet> snippets;
	@Transient 
	private static final ThemeResource folderIcon= new ThemeResource("../runo/icons/32/folder.png");;
	
	
	
	public Carpeta(){
		//
	}
	/**
	 * @param nombre
	 * @param descripcion
	 * @param usuario
	 */
	public Carpeta(String nombre, String descripcion, Usuario usuario) {
		super();
		this.nombre = nombre;
		this.descripcion = descripcion;
		this.usuario = usuario;
//		this.folderIcon = new ThemeResource("../runo/icons/32/folder.png");
	}
	
	public Carpeta(String nombre, String descripcion) {
		super();
		this.nombre = nombre;
		this.descripcion = descripcion;
//		this.folderIcon = new ThemeResource("../runo/icons/32/folder.png");
	}
	/**
	 * @return the id
	 */
	public Long getId() {
		return id;
	}
	/**
	 * @param id the id to set
	 */
	public void setId(Long id) {
		this.id = id;
	}
	/**
	 * @return the nombre
	 */
	public String getNombre() {
		return nombre;
	}
	/**
	 * @param nombre the nombre to set
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	/**
	 * @return the descripcion
	 */
	public String getDescripcion() {
		return descripcion;
	}
	/**
	 * @param descripcion the descripcion to set
	 */
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	/**
	 * @return the usuario
	 */
	public Usuario getUsuario() {
		return usuario;
	}
	/**
	 * @param usuario the usuario to set
	 */
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	/**
	 * @return the snippets
	 */
	public Set<Snippet> getSnippets() {
		return snippets;
	}
	/**
	 * @param snippets the snippets to set
	 */
	public void setSnippets(Set<Snippet> snippets) {
		this.snippets = snippets;
	}
	/**
	 * @return the folderIcon
	 */
	public ThemeResource getFolderIcon() {
		return folderIcon;
	}
	/**
	 * @param folderIcon the folderIcon to set
	 */
//	public void setFolderIcon(ThemeResource folderIcon) {
//		this.folderIcon = folderIcon;
//	}
}
